
#ifndef _COMMUNICATION_COMMON_H_
#define _COMMUNICATION_COMMON_H_

#include <mavlink.h>
#include <bsp_usart.h>
#include <sbus.h>
#include <telegram.h>

#define COMMUNICATION_THREAD_STACK_SIZE 1024
#define COMMUNICATION_THREAD_PRIORITY 6
#define COMMUNICATION_THREAD_TICK 20

#define MSG_TX_BUFFER_SIZE 150
#define MSG_RX_BUFFER_SIZE 150

#define MAVLINK_UAV_SYSTEM_ID 2
#define MAVLINK_UAV_COMPONENT_ID 2

#define COMMUNICATION_USE_UART 1 /* 使用串口和计算机通信 */
#define COMMUNICATION_USE_USB 0  /* 使用USB和计算机通信 */
#define COMMUNICATION_USE_UDP 0  /* 使用UDP和计算机通信 */

#define HEARTBEAT_TIMER_PERIOD 1000      /* 心跳包 */
#define REPORT_ATTITUDE_TIMER_PERIOD 200 /* 报告姿态 */

#define COMMUNICATION_WITH_RADIO 1    /* 使用SBUS和遥控器交互 */
#define COMMUNICATION_WITH_TELEGRAM 0 /* 使用串口和数传电台交互 */

/// @brief 开启通信线程
/// @param
/// @return
int start_communication_thread(void);

#endif